package com.tm.util;

import java.sql.*;

public class DBUtil {

    private static final String DB_DRIVER = "com.mysql.jdbc.Driver";
    private static final String DB_URL = "jdbc:mysql://localhost:3306/tm";
    private static final String DB_USER = "root";
    private static final String DB_PASS = "1111";

    private static Connection conn = null;

    /**
     * 获取数据库连接对象
     * @return 数据库连接对象
     */
    public static Connection getConn(){
        try {

            //  1.  注册驱动
            Class.forName(DB_DRIVER);

            //  2.  获取连接对象
            conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS);
            System.out.println("连接成功！");
        } catch (SQLException e) {
            throw new RuntimeException(e);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }

        return conn;
    }

    /**
     * 关闭数据库连接所需要的所有资源
     * @param conn  连接对象
     * @param stmt  声明对象
     * @param rs    结果集对象
     */
    public static void closeAll(Connection conn, Statement stmt, ResultSet rs){
        try {
            if(rs != null){             //  结果集不为空
                rs.close();             //  关闭结果集
                rs = null;              //  将结果集置空，以便Java虚拟机尽快回收资源
            }
            if(stmt != null){             //  声明对象不为空
                stmt.close();             //  关闭声明对象
                stmt = null;              //  将声明对象置空，以便Java虚拟机尽快回收资源
            }
            if(conn != null){             //  连接对象不为空
                conn.close();             //  关闭连接对象
                conn = null;              //  将连接对象置空，以便Java虚拟机尽快回收资源
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}
